package aufgabe2_pop3;

public class Main extends Thread{

	public static void main(String[] args) {
		
		boolean client_endless_check = false;
		
		
		
		//Erzeuge Datenverwaltung
		Datenbank datenbank = new Datenbank();
		
		datenbank.log("Klasse", "Was", "Nachricht");
		datenbank.log("Main", "Start Start", "Datenbank erzeugt");
		
		//Fuege abzufragende Konten hinzu
		//datenbank.createAbholkonto("localhost", 11000, "tester", "pass");
		//datenbank.createAbholkonto("lab30.cpt.haw-hamburg.de", 11000, "bai4rnpP", "bJ5t7rAT");
		//datenbank.createAbholkonto("lab31.cpt.haw-hamburg.de", 11000, "bai4rnpP", "bJ5t7rAT");
		//datenbank.createAbholkonto("pop.gmail.com", 995, "johnhawptest", "123qweasdyxc");
		datenbank.createAbholkonto("mail.mbaisch.de", 110, "test_1@mbaisch.de", "#L)o-mND2xn=");
		datenbank.createAbholkonto("mail.mbaisch.de", 110, "test_2@mbaisch.de", "#L)o-mND2xn=");
		
		//Fuege konnten die fuer das abholen erlaubt sind hinzu
		datenbank.createKonto("localhost", 11000, "tester", "pass");
		
		datenbank.log("Main", "Start Start", "Konten erzeugt");
		
		//Starte Server
		Server_Administration server_a = new Server_Administration(datenbank);
		server_a.start();
		datenbank.log("Main", "Start Server", "Server Erzeugt");
		
		//Starte Client
		Client client = new Client(datenbank);
		client.start();
		
		//Starte den Client alle 30 Sekunden wenn er nicht leuft
		while(client_endless_check){
			if(client.isAlive()){
				my_sleep();
			} else {
				client = new Client(datenbank);
				client.start();
			}
		}
		
		//Wartet darauf das der server sich bended
		while(server_a.isAlive()){
			my_sleep();
		}
		
	}

	public static void my_sleep(){
		try {
			sleep(30000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
}
